package com.hj.constants;

import com.hj.dto.CaptchaDto;

import java.text.MessageFormat;

public interface LoginConstants {
    /**
     * @author doudh
     * @date 2020/8/25
     * @description
     */
    public enum RepCodeEnum {

        SUCCESS("101", "登录成功"), ERROR("102", "操作失败"), EXCEPTION("103", "服务器内部异常"),

        BLANK_ERROR("104", "{0}不能为空"), NULL_ERROR("105", "{0}不能为空"), MSGCODE_ERROR("106", "验证码错误，请重新输入"),
        PASSWORD_ERROR("107", "用户名或密码错误"), PASSWORD_MANY_ERROR("108", "密码错误次数太多，请5分钟后重试"),
        MSGCODE_MANY_ERROR("109", "验证码校验次数过多，请重新发送验证码"), MOBILE_ERROR("110", "手机号错误"),
        MOBILE_CODE_LOCK("111", "短信码发送频繁"),;

        private String code;
        private String desc;

        RepCodeEnum(String code, String desc) {
            this.code = code;
            this.desc = desc;
        }

        public String getCode() {
            return code;
        }

        public String getDesc() {
            return desc;
        }

        public String getName() {
            return this.name();
        }

        /**
         * 将入参fieldNames与this.desc组合成错误信息 {fieldName}不能为空
         *
         * @param fieldNames
         * @return
         */
        public CaptchaDto parseError(Object... fieldNames) {
            CaptchaDto errorMessage = new CaptchaDto();
            String newDesc = MessageFormat.format(this.desc, fieldNames);

            errorMessage.setRepCode(this.code);
            errorMessage.setRepMsg(newDesc);
            return errorMessage;
        }

    }
}
